# GPU user guide ***Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.*** --- # What is GPU GPU (Graphics Processing Unit) is a chip in the device dedicated to "drawing" and "computing images". The CPU is responsible for "thinking" — processing logic and running programs. The GPU is responsible for "drawing" — rendering content into images displayed on the screen. The RK3576 integrates an ARM Mali-G52 MC3 GPU (up to 900 MHz). The desktop interface, video playback, and 3D games all rely on it for rendering. # Where the GPU Works in Daily Use | **Scenario** | **What the GPU Does** | | --- | --- | | Desktop interface | Window compositing, animation transitions, app switching | | Video playback | Color processing and scaling of video frames | | Web browsing | Web content compositing, scrolling rendering | | 3D apps/games | 3D scene rendering | | Video conferencing | Video effects, virtual backgrounds | The M2 Debian desktop (GNOME) uses GPU compositing rendering by default. The GPU works all the time during daily operations; no manual enabling is required. # Using the GPU on M2 ## Scenario 1: Video Playback (GPU Rendering Output) Use GStreamer to play video, with frames rendered by the GPU to the screen (Wayland): ```bash # Play the onboard test video (hardware decode + GPU rendering display) gst-launch-1.0 filesrc location=/oem/SampleVideo_1280x720_5mb.mp4 ! \ qtdemux ! h264parse ! mppvideodec ! waylandsink # Desktop environment variables (GNOME user session) export XDG_RUNTIME_DIR=/run/user/1000 WAYLAND_DISPLAY=wayland-0 ``` Normal playback display indicates the GPU rendering pipeline works correctly. ## Scenario 2: Running GPU Performance Test (glmark2) glmark2 is an OpenGL performance benchmark. The score reflects overall GPU performance: ```bash # Install sudo apt install glmark2-wayland # Run in the desktop session (M2 / Debian) XDG_RUNTIME_DIR=/run/user/1000 WAYLAND_DISPLAY=wayland-0 glmark2-wayland ``` M2 measured score: **745** (all items). Observe GPU frequency changes while running: ```bash watch -n1 cat /sys/class/devfreq/27800000.gpu/cur_freq # Frequency rises from 300MHz to 900MHz during benchmark ``` ## Scenario 3: Writing Your Own OpenGL Program (Development) The M2 Mesa Panfrost driver supports OpenGL ES 3.1 and Desktop GL 3.1. You can develop with standard OpenGL: ```bash # Install development libraries sudo apt install libgl1-mesa-dev libegl1-mesa-dev libgles2-mesa-dev # Compile GLES program (es2gears as example) sudo apt install mesa-utils-extra es2gears ``` If the program reports "Could not initialize canvas", there is no available graphics session — you need to log in to the GNOME desktop first. # FAQ | **Problem** | **Solution** | | --- | --- | | 3D programs report "Could not initialize canvas" | Log in to the GNOME desktop first; SSH without a desktop session cannot run it | | Desktop lag / frame drops | Check GPU frequency: cat /sys/class/devfreq/27800000.gpu/cur_freq | | Desktop GL programs cannot run on SMARC | SMARC only supports GLES 3.2; use the GLES version or switch to M2 | | GPU overheating | RK3576 GPU heats up under full load; pay attention to heat dissipation |